#include<bits/stdc++.h>
using namespace std;

int n,m;


bool rev_flag=false;

inline void write(int x,int y){
	if(rev_flag) swap(x,y);
	cout<<x<<' '<<y<<endl;
}

int main(){
	freopen("bishop.in","r",stdin);
	freopen("bishop.out","w",stdout);
	ios::sync_with_stdio(false);
	cin>>n>>m;
	if(n==m){
		if(n==1){
			cout<<"1\n1 1";
			return 0;
		}
		cout<<n+m-2<<endl;
		for(int i=1;i<n;++i){
			cout<<"1 "<<i<<'\n'<<n<<' '<<i<<'\n';
		}
		return 0;
	}
	if(n>m){
		rev_flag=true;
		swap(n,m);
	}
	if(n&1){
		cout<<n+m-1<<endl;
		for(int i=1;i<=n;++i){
			// cout<<i<<" 1\n"<<i<<' '<<m<<'\n';
			write(i,1);
			write(i,m);
		}
		for(int i=(n+3)/2;i<m-((n-1)/2);++i){
			// cout<<(n+1)/2<<' '<<i<<'\n';
			write((n+1)/2,i);
		}
	}
	else{
		if(m&1){
			cout<<n+m-1<<endl;
		}
		else{
			cout<<n+m-2<<endl;
		}
		for(int i=1;i<=n;++i){
			// cout<<i<<" 1\n"<<i<<' '<<m<<'\n';
			write(i,1);
			write(i,m);
		}
		for(int i=2+((n)/2);i<m-(n/2);i+=2){
			// cout<<(n)/2<<' '<<i<<'\n';
			// cout<<(n/2)+1<<' '<<i<<'\n';
			write(n/2,i);
			write((n/2)+1,i);
		}
	}
	return 0;
}